import java.util.Scanner;
public class Test {
    //判断闰年的方法
    public static boolean isLeapYear(int year) {
        if(0 == year % 4 && 0 != year % 100 || 0 == year % 400) {
            return true;
        } else {
            return false;
        }
    }
    //两数相加的方法
    //    public static int add(int x,int y) {
    //        return  x+y;
    //    }
    //计算某个数的阶乘的方法
    public static int fac(int num) {
        int ret = 1;
        for (int i = 1; i <= num ; i++) {
            ret *= i;
        }
        return ret;
    }
    //计算1到某个数所有阶乘的相加
    public static int facSum(int num) {
        int sum = 0;
        for (int i = 1; i <= num; i++) {
            //方法调用-->计算某个数的阶乘的方法
            sum += fac(i);
        }
        return sum;
    }

    //方法重载
    public static int add(int x,int y) {
        return x + y;
    }
    public static double add(double x,double y) {
        return x + y;
    }

    //递归
    //递归求N的阶乘
    public static int funFac(int n) {
        if(n == 1) {
            return 1;
        }
        int tmp = n * funFac(n-1);
        return tmp;
     }

    public static void main(String[] args) {
        //方法调用-->调用判断闰年函数
        boolean flg = isLeapYear(2014);
        System.out.println(flg);

        //方法调用-->判断两数相加方法
        int x = 0, y = 0;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入两个整数：");
        x = scanner.nextInt();
        y = scanner.nextInt();
        System.out.println(x + "+" + y + "的结果是：" + add(x , y));

        //方法调用-->计算1到某个数所有阶乘的相加
        //创建了多个Scanner对象，它们都包装了同一个输入流（System.in）当你关闭其中一个Scanner时，它会同时关闭底层的输入流（System.in）
        //之后，其他的 Scanner 对象再尝试从这个已关闭的流中读取数据，就会立刻抛出 NoSuchElementException。
        //解决方案：
        //在整个程序中，只创建一个Scanner对象来处理System.in，并在程序最后才关闭它。不要为同一个流创建多个Scanner。
        //如果你必须使用多个，确保在所有操作完成之前不要关闭任何一个。
        int num = 0;
        //Scanner scanner1 = new Scanner(System.in);    //不要多创建多个Scanner对象
        System.out.println("请输入一个数：");
        num = scanner.nextInt();
        System.out.println(facSum(num));
        scanner.close();

    }
}
